package com.ctshk.rpc.cms.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.cms.dto.NoticeDTO;
import com.ctshk.rpc.cms.req.*;

import java.util.List;

/**
 * <p>
 * 公告管理 服务类
 * </p>
 *
 * @author LiZhiming
 * @since 2021-04-23
 */
public interface INoticeService {
    /**
     * 新增公告
     *
     * @param req
     * @return
     */
    Result insert(NoticeAddReq req, TokenUser tu);

    /**
     * 查询公告
     * @param noticeId
     * @return
     */
    Result<NoticeDTO> queryById(String noticeId);

    /**
     * 公告分页查询
     * @param req
     * @return
     */
    PageResponse<NoticeDTO> queryList(NoticeQueryReq req);

    /**
     * 公告s查询
     * @param req
     * @return
     */
    List<NoticeDTO> queryListByCode(BannerPositionByTypeReq req);

    /**
     * 修改公告
     * @param req
     * @return
     */
    Result update(NoticeUpdateReq req, TokenUser tu);

    /**
     * 修改有效状态
     * @param req
     * @return
     */
    Result updateStatusById(UpdateStatusReq req);
}
